home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
EnigmA Amiga Run 1996 June
/
EnigmA AMIGA RUN 08 (1996)(G.R. Edizioni)(IT)[!][issue 1996-06][EARSAN CD VII].iso
/
earcd
/
utilsys
/
rss14gmd.lha
/
RSys_1.4gmd
/
C
/
Global.c
< prev
next >
Wrap
C/C++ Source or Header
|
1996-05-04
|
12KB
|
555 lines
/*
***************************************************************************
*
* Datei:
* RSysGlobal.c
*
* Inhalt:
*
* --- Globale Routinen ---
*
*
* --- Lokale Routinen ---
*
*
* Bemerkungen:
* Globale Daten für RSys (Flags, Menus etc.)
*
* Erstellungsdatum:
* 07-Jul-93 Rolf Böhme
*
* Änderungen:
* 07-Jul-93 Rolf Böhme Erstellung
*
***************************************************************************
*/
#include "RSys.h"
LIBRARY *DiskfontBase = NULL;
LIBRARY *AslBase = NULL;
LIBRARY *GadToolsBase = NULL;
LIBRARY *UtilityBase = NULL;
LIBRARY *CxBase = NULL;
LIBRARY *IFFParseBase = NULL;
LIBRARY *IconBase = NULL;
DISKOBJECT *ProgramIcon;
APPICON *appicon = NULL;
WORKBENCHBASE *WorkbenchBase = NULL;
INTUITIONBASE *IntuitionBase = NULL;
GFXBASE *GfxBase = NULL;
EXPANSIONBASE *ExpansionBase = NULL;
AMIGAGUIDEBASE *AmigaGuideBase = NULL;
UBYTE namebuffer[MAXPUBSCREENNAME + 1] = "Workbench", autocon[MAXFULLNAME];
char _fullpath[MAXFULLNAME];
LIST ListeLVList;
SCREEN *Scr = NULL;
APTR VisualInfo = NULL;
WINDOW *SysWnd = NULL;
GADGET *SysGList = NULL;
MENU *SysMenus = NULL;
UWORD SysZoom[4];
GADGET *SysGadgets[20];
#if 0
UWORD SysLeft = 153;
UWORD SysTop = 30;
UWORD SysWidth = 487;
UWORD SysHeight = 183; /*173 */
#else
UWORD SysLeft = 00;
UWORD SysTop = 00;
UWORD SysWidth = 500;
UWORD SysHeight = 320; /*173 */
#endif
UBYTE *SysWdt = (UBYTE *) NAME " " VERSION " (" DATE ", " TIME ")";
TEXTATTR *Font;
UWORD FontX, FontY;
UWORD OffX, OffY;
TEXTATTR TAttr;
TEXTATTR Topaz80 =
{
(STRPTR) "topaz.font", TOPAZ_EIGHTY, FS_NORMAL, FPF_ROMFONT
};
MSGPORT *SysIdPort;
RSYS_ScrollEntry *Entries = NULL;
UBYTE gbuf[BUFSIZE];
/*
* SEE List.c: RefreshList()
* GMD ; EA_ things added
*/
void MakeTaskList (void);
void MakeLibList (void);
void MakeMemoryList (void);
void MakePortList (void);
void MakeVolumeList (void);
void MakeAssignList (void);
void MakeFontList (void);
void MakeResourceList (void);
void MakeIntrList (void);
void MakeWindowList (void);
void MakeScreenList (void);
void MakeHandlerList (void);
void MakeSystemList (void);
void MakeHardwareList (void);
void SysPrefList (void);
void SysResidentList (void);
void SysAvailFontsList (void);
void SysEnvList (void);
void SysCLIList (void);
void SysResidentProg (void);
void SysSemaphoreList (void);
void SysVectorList (void);
void SysSoftDeviceList (void);
void SysPubScreenList (void);
void SysPubScreenList (void);
void SysBlitterWaitList (void);
void SysTOFWaitList (void);
void SysBrokerList (void);
void SysExtPrinterData (void);
void SysCheckOffs (void);
void RSysGetDisplayModes (void);
void RSysLockList (void);
void RSysAmigaGuideRefList (void);
void RSysGadgetList (void);
void RSysMemoryAreaList (void);
void RSysFaultMessages (void);
RSYS_EntryAttribute EntryAttr[] =
{
/* 00 */
{"Task", "Address Task/Proc Typ Pri Stack Stat Cli ",
"%08lX %-18.18s %4.4s %4ld %5ld %4.4s %3.3s", MakeTaskList, EA_C_HELP},
/* 01 */
{"Library", "Address Libraryname Version OpenCnt O",
"%08lX %-25s %4ld.%-4ld %7ld %lc", MakeLibList, EA_C},
/* 02 */
{"Memory", "Memory address Size Type",
"%08lX %10ld %s", MakeMemoryList, EA_NOTC},
/* 03 */
{"Port", "Address Portname Signal-Task Pri",
"%08lX %-22s %-15s %4ld", MakePortList, EA_C},
/* 04 */
{"Volume", "Volumename K-Free K-Used %Used F Sta Typ",
"%-18.18s %6ld %6ld %4ld%% %lc %3.3s %4.4s", MakeVolumeList, EA_C},
/* 05 */
{"Assign", "Assign Directory",
"%-13.13s %-39.39s", MakeAssignList, EA_C},
/* 06 */
{"Font", "Address Fontname Typ Y X Low Upp",
"%08lX %-20s %-4s %3ld %3ld %3ld %3ld", MakeFontList, EA_C},
/* 07 */
{"Resource", "Address Resourcename Version OpenCnt",
"%08lX %-26.26s %5ld.%-4ld %6ld", MakeResourceList, EA_C}, /*GMD */
/* 08 */
{"Interrupt", "Address Interruptname Pri Data Code",
"%08lX %-20.20s %4ld %08lX %08lX", MakeIntrList, EA_C},
/* 09 */
{"Window", "Address Windowtitle H W X Y Screen",
"%08lX %-17.17s %3ld %3ld %3ld %3ld %-10.10s", MakeWindowList, EA_C},
/* 10 */
{"Screen", "Address Screentitle H W X Y Typ",
"%08lX %-23.23s %3ld %3ld %3ld %3ld %3.3s", MakeScreenList, EA_C},
/* 11 */
{"Input Handler", "Address Inputhandler name Pri Data Code",
"%08lX %-20.20s %4ld %08lX %08lX", MakeHandlerList, EA_C},
/* 12 */
{"System Infos", " Systeminfo",
NULL, MakeSystemList, EA_NOTC},
/* 13 */
{"Hardware Infos", " Hardware/Expansion",
NULL, MakeHardwareList, EA_NOTC},
/* 14 */
{"Online Help", " Online Help",
NULL, NULL, EA_NOTC},
/* 15 */
{"Preferences", " Preferences", NULL,
SysPrefList, EA_NOTC},
/* 16 */
{"Devices/Handler", "Device name Driver/Handler",
"%-13.13s %-28.28s", SysResidentList, EA_C},
/* 17 */
{"Diskfonts", "Font name Type Y Style",
"%-20.20s %-4.4s %3ld %10.10s", SysAvailFontsList, EA_C},
/* 18 */
{"ENV:-List", "ENV-Variable Content",
"%-13.13s %-28.28s", SysEnvList, EA_C},
/* 19 */
{"CLI-List", "Address CLI nr. Name Pri Stack",
"%08lX CLI %-3ld %-15.15s %4ld %6ld", SysCLIList, EA_C},
/* 20 */
{"Resident Program", "Address Resident name UseCount Type",
"%08lX %-20.20s %4ld %-14.14s", SysResidentProg, EA_C},
/* 21 */
{"Semaphore", "Address Semaphore name Pri Ownertask",
"%08lX %-22.22s %4ld %-12.12s", SysSemaphoreList, EA_C},
/* 22 */
{"System vector", " System Vectors",
NULL, SysVectorList, EA_NOTC},
/* 23 */
{"Software Device", "Address Devicename Version OpenCnt",
"%08lX %-26.26s %4ld.%-4ld %6ld", SysSoftDeviceList, EA_C},
/* 24 */
{"Public Screen", "Address Name VCnt SigTask",
"%08lX %-18.18s %3ld %-9.9s", SysPubScreenList, EA_C},
/* 25 */
{"Blitter Waiter", "Address Name Prio",
"%08lX %-20.20s %3ld", SysBlitterWaitList, EA_C},
/* 26 */
{"TOF Waiter", "Address Name Prio",
"%08lX %-20.20s %3ld", SysTOFWaitList, EA_C},
/* 27 */
{"Commodity", "Address Name Prio",
"%08lX %-20.20s %3ld", SysBrokerList, EA_C},
/* 28 */
{"Printer data", " Printer data",
NULL, SysExtPrinterData, EA_NOTC},
/* 29 */
{"Library offsets", "Offs Address Act Function",
"%4ld %08lX %3s %-22.22s", SysCheckOffs, EA_NOTC},
/* 30 */
{"Available Display Modes", "Address Name Depth MinR MaxR",
"%08lX %-17.17s %3ld %4ld,%-4ld %4ld,%-4ld", RSysGetDisplayModes, EA_C},
/* 31 */
{"Volume locks", "Address File Access ",
"%08lX %-35.35s %-5s", RSysLockList, EA_C},
/* 32 */
{"Amigaguide XRef", "Address XRef keyword Type File Line",
"%08lX %-14.14s %4.4s %-15.15s %4ld", RSysAmigaGuideRefList, EA_C},
/* 33 */
{"Gadgets", "Address Gadget text Typ PosX PosY W H",
"%08lX %-14.14s %6.6s %4ld %4ld %4ld %4ld", RSysGadgetList, EA_NOTC},
/* 34 */
{"Memory areas", "Startadr Endadr Attributes Comment",
"%08lX %08lX %3.3s %3.3s %3.3s %-22.22s", RSysMemoryAreaList, EA_C},
/* 35 */
{"Fault codes", "Fault Message",
"%3ld %-50.50s", RSysFaultMessages, EA_C},
};
RSYS_flags Flags =
{
1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 1,
/* RSys private */
1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* Dummys */
0, 0, 0, 0, 0
};
int countentries;
int topentry;
int LastID = SYSTEMINFO;
int ReopenWindow = FALSE;
int bpc = 0;
int bgc = 0;
long bpp = 0;
int winddetail = 0;
int windblock = 1;
int menudetail = 0;
int iconx = NO_ICON_POSITION;
int icony = NO_ICON_POSITION;
int listviewheight = 10;
char *RSysName = NULL;
#if 0
enum _field
{
NO_FIELD,
NO_LIB_ID,
NO_FLAGS,
NO_TASK,
NO_NODE,
WRONG_TYPE_FMT,
NO_TYPE,
NO_TITLE,
NO_BAUD,
NO_PARITY,
NO_HANDSHK,
NO_HANDLER,
NO_FILE,
NO_LOCK,
BLANK_FIELD,
NO_FD_FIELD,
HAS_IMAGE,
UNKNOWN_FIELD
};
#endif
const char *field[] =
{
/*NO_FIELD, */ "-",
/*NO_LIB_ID, */ "<no id>",
/*NO_FLAGS, */ "<no flags>",
/*NO_TASK, */ "<no task>",
/*NO_NODE, */ "<no node>",
/*WRONG_TYPE_FMT, */ "<wrong type: %ld>",
/*NO_TYPE, */ "<??>",
/*NO_TITLE, */ "<no title>",
/*NO_BAUD, */ "<no baudrate>",
/*NO_PARITY, */ "<no parity>",
/*NO_HANDSHK, */ "<no handshk>",
/*NO_HANDLER, */ "<no handler>",
/*NO_FILE, */ "<no file>",
/*NO_LOCK, */ "<no lock>",
/*BLANK_FIELD, */ "",
/*NO_FD_FIELD, */ "<no FD-Offsets>",
/*HAS_IMAGE, */ "<has image>",
/*UNKNOWN_FIELD */ "<unknown>"
/* */ ""
};
RSYSFILES RSysFiles =
{
"PROGDIR:" NAME "Hardware.DAT",
"PROGDIR:" NAME "LibOff.DAT",
"PROGDIR:" NAME "13.guide",
"PROGDIR:" NAME "13.guide.context",
"PROGDIR:" NAME "Action.dat"
};
/*
* GMD added stuff
*/
RSYS_acts *Actions;
LIST ActionList;
LIST DisplayList;
int counter;
LIST DL;
MSGPORT *broker_mp = NULL;
CxObj *broker, *filter[HOTKEYS + 1], *sender, *translate;
char hotkey[HOTKEYS + 1][30];
NEWBROKER newbroker =
{
NB_VERSION,
NAME,
NAME " " VERSION " - " COPYRIGHT,
"RSys Commodity Handler",
NBU_UNIQUE,
NULL /*COF_SHOW_HIDE */ ,
0,
0,
0
};
SCREEN *lastpubscreen = NULL;
REMEMBER *FKey = NULL;
LIST FuncList;
MANUFACTURER *manu;
char **company_str;
UBYTE *context[MONITOR + 1];
int hardwarecnt = 0;
LIST Libraries;
LIST ValidMemoryList;
long maxentries;
int LVH = 85;
int WndH = 183;
int SysMinH = 132;
int newlvh;
NODE *actualfindnode;
long actualfindnodenum = 0;
char _file[PATHPARTWIDTH];
char _dir[MAXFULLNAME];
int decnt = 0;
int breakit = FALSE;
TEXTFONT *tf = NULL;
TEXTATTR tree_ta =
{
(STRPTR) "ibm.font",
8,
0,
2
};
/*
* string for AmigaDOS Version Command (GMD)
*/
char A_vers[] = "\0$VER: RSys\t" VERSION " " __AMIGADATE__;
UBYTE *TreeWdt = (UBYTE *) NAME " " VERSION " - Directory Tree Lister";
UBYTE *TreeWdt1 = (UBYTE *) NAME " " VERSION " - Hunk Lister";
WINDOW *TreeWnd = NULL;
GADGET *TreeGList = NULL;
GADGET *TreeGadgets[3];
int global_type;
char *mess[] =
{
"Disk/Directory",
"File",
"Icon file",
"Text file",
"C Sourcefile",
".h-C-Include",
"Assembler file",
"Assembler-Include file",
".MOD file",
"ARexx program",
"BASIC program",
"TeX file",
"MetaFONT file",
"GF file",
"TeX-Font file",
"TeX-DVI file",
"Font library",
"MANX Objectfile (V3.x)",
"MANX Objectfile (V5.x)",
"MANX Libraryfile (V3.x)",
"MANX Libraryfile (V5.x)",
"Objekt file",
".LIB file (Object library)",
"Executable",
"Library",
"Device",
"Filesystem",
"Handler",
"GIF picture",
"ILBM graphic",
"Animation",
"8SVX song",
"SMUS-Song",
"FTXT format",
"Preferences",
"Term file",
"Imploder file",
"Powerpacker file",
"Arc archive",
"LHArc archive",
"Zoo archive",
"ZIP archive",
"DMS archive",
"WARP archive",
"ZOOM archive",
"WordPerfect document"
};
/*
* Some file name suffixes for text files and the approriate file types.
*/
RSYS_Suffix TextSuffix[] =
{
".C", TYPE_C,
".CP", TYPE_C,
".CC", TYPE_C,
".H", TYPE_H,
".ASM", TYPE_ASM,
".A", TYPE_ASM,
".S", TYPE_ASM,
".I", TYPE_I,
".BAS", TYPE_BASIC,
".GFA", TYPE_BASIC,
".REXX", TYPE_REXX,
".CED", TYPE_REXX,
".VLT", TYPE_REXX,
".CPR", TYPE_REXX,
".TxEd", TYPE_REXX,
".TEX", TYPE_TEX,
".STY", TYPE_TEX,
".MF", TYPE_METAFONT,
".MOD", TYPE_MOD,
".DEF", TYPE_MOD,
".WP", TYPE_WORDPERFECT
};
/*
* Some more file name suffixes for executable files and the approriate
* file types.
*/
RSYS_Suffix ExecutableSuffix[] =
{
".device", TYPE_DEVICE,
".library", TYPE_LIBRARY,
"FileSystem", TYPE_FILESYS,
"Handler", TYPE_HANDLER
};
/*
* GMD ; minimise refs to VERSION (recompile main.c only)
*/
char *
get_vers (char *ptr)
{
static char buf[100];
sprintf (buf, "%s%s", NAME " " VERSION, ptr);
return (buf);
}